package com.dongbo.recorder.screenrecord.utils.alipay;

import android.app.Activity;
import android.text.TextUtils;

import com.alipay.sdk.app.PayTask;

/**
 * 支付管理器
 */
public class PayManager {
	public static void play(final Activity activity, final String payInfo, final PayResultLinstener linstener){
		CommonThreadPool.getThreadPool().submit(new Runnable() {
			@Override
			public void run() {
				// 构造PayTask 对象
				PayTask alipay = new PayTask(activity);
				// 调用支付接口，获取支付结果
				String result = alipay.pay(payInfo,true);
				PayResult payResult = new PayResult(result);
				String resultInfo = payResult.getResult();// 同步返回需要验证的信息
				String resultStatus = payResult.getResultStatus();
//				Log.i("chen", "resultStatus: "+resultStatus);
//				LogUtils.i("PayManager.play:", "resultStatus: "+resultStatus);
				// 判断resultStatus 为“9000”则代表支付成功，具体状态码代表含义可参考接口文档
				if (TextUtils.equals(resultStatus, "9000")) {
					linstener.onPaySuccess("支付成功");
				} else {
					// 判断resultStatus 为非"9000"则代表可能支付失败
					// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认，最终交易是否成功以服务端异步通知为准（小概率状态）
					if (TextUtils.equals(resultStatus, "8000")) {
						linstener.onPayFailed("支付结果确认中");
					} else {
						// 其他值就可以判断为支付失败，包括用户主动取消支付，或者系统返回的错误
						linstener.onPayFailed("支付失败");
					}
				}

			}
		});
	}

	public interface PayResultLinstener{
		public void onPaySuccess(String msg);
		public void onPayFailed(String msg);
	}
}
